home *** CD-ROM | disk | FTP | other *** search
/ Over 1,000 Windows 95 Programs / Over 1000 Windows 95 Programs (Microforum) (Disc 2).iso / 1133 / nncalc.txt < prev    next >
Text File  |  1997-04-16  |  12KB  |  283 lines

  1. NNCalc
  2.  
  3. NNMODEL Excel 5 & Excel 95 Add-In (version 1.3)
  4.  
  5. INTRODUCTION
  6.  
  7. NNCalc is an Excel 5 & Excel 95 Add-In that allows you to test or use
  8. your neural models from with-in an Excel spreadsheet.  You can now
  9. build complex systems of standard mathematical equations and neural
  10. models then execute them at "Excel" speeds.
  11.  
  12. INSTALLATION
  13.  
  14. If you have received the professional edition of NNCalc copy it from the supplied 
  15. floppy into the C:\NNCALC sub-directory. IMPORTANT: NNCALC must reside 
  16. on the C: drive.
  17.  
  18. To create the nncalc sub-directory on the C: drive and copy all the files to it use:
  19.  
  20.     MKDIR C:\NNCALC
  21.     COPY A:*.* C:\NNCALC
  22.  
  23. To install the NNCalc Add-In open an Excel spreadsheet and:
  24.  
  25. 1. Select "Add-Ins" from the "Tools" menu.
  26. 2. Press the "Browse" button and navigate to the NNCALC sub-directory.
  27. 3. Select the file "NNCALC.XLL". Note: for Excel 95 select NNCALC32.XLL
  28.  
  29. From now on NNCalc will be available every time Excel is started. If you wish to 
  30. remove NNCalc from Excel select the "Add-Ins" command and "un-check" the 
  31. Add-In labeled "NNCalc Neural Network Function".
  32.  
  33. USAGE
  34.  
  35. To build a model that NNCalc can load; first build the model as usual using 
  36. NNMODEL. Then export the model as a feed-forward ENN file and copy it into 
  37. the "c:\nncalc" sub-directory. Note: The current version of NNCalc only looks in 
  38. the "c:\nncalc" sub-directory even if you have installed NNMODEL on the another 
  39. hard disk.
  40.  
  41. NNCalc Functional Description:
  42.  
  43. When the NNCalc function is called the neural model named ModelName is 
  44. looked up and it is loaded into memory (if not already present). It then parses the 
  45. rest of the passed parameters and returns an error if the number of passed 
  46. parameters doesn't match the number of inputs to the model. If all parameters 
  47. are correct then NNCalc returns the predicted value of the network,. Otherwise, it 
  48. will return an error code indicating a reason for failure. 
  49. The parameters passed to NNCalc are in the following form:
  50.  
  51.     =NNCalc ("ModelName", FirstInput, SecondInput, ..., LastInput) 
  52.  
  53. where:
  54.  
  55. ModelName         This is the file name of the neural network. No file 
  56.                   extension or sub-directory should be specified. 
  57.                   NNCalc assumes "C:\NNCALC" as the sub-
  58.                   directory and ENN as the extension. For example: 
  59.                   the ModelName "XOR" is translated into 
  60.                   "C:\NNCALC\XOR.ENN".
  61.  
  62. FirstInput        This is the first input included into the network. 
  63.                   The sequence order can easily be determined by 
  64.                   viewing the input list in the "Interrogate Model" 
  65.                   dialog.
  66.  
  67. SecondInput       The second input to the network.
  68.  
  69. LastInput         The final input to the network.
  70.  
  71.  
  72. NNCalcM Functional Description:
  73.  
  74. Because NNCalc only returns the first output of a neural model (a limitation 
  75. of Excel) a function is needed to get additional model outputs. NNCalcM 
  76. returns the predicted values for models that have more than one output. 
  77. NNCalcM does not evaluate the model (that's NNCalcs job). It simply returns
  78. the network's output value.
  79.  
  80.     =NNCalcM ("ModelName", NeuralOutput, RefToNNCalc) 
  81.  
  82. where:
  83.  
  84. ModelName         This is the file name of the neural network. 
  85.  
  86. NeuralOutput      The index to the neural output to be returned. The first
  87.                   neural output (the one returned by NNCalc) can be selected
  88.                   by passing a 1. The second output can be selected by a value
  89.                   of 2 etc.
  90.  
  91. RefToNNCalc       This is the cell reference to where NNCalc is used for the
  92.                   selected. For example if =NNCalc("xor2",b1,b2) is in cell G2 
  93.                   then to return the second output of model "xor2" add
  94.                   =NNCalcM("xor2",2,G2) to the cell where you want to display
  95.                   the second output. This "cell reference" is needed so that
  96.                   Excel knows to call NNCalc before calling NNCalcM. 
  97.  
  98. NNCalcSet Functional Description:
  99.  
  100. NNCalcSet is used to turn on and off diagnostic functions. Currently there is
  101. only one diagnostic - Logging. To turn on logging call NNCalcSet with the 
  102. following parameters.
  103.  
  104.     =NNCalcSet("LogOnOff") 
  105.  
  106. where:
  107.  
  108. LogOnOff         This is a 1 to turn of logging and a 0 to turn off logging.
  109.  
  110.  
  111. A note about input scaling of the passed variables. The input variables are 
  112. linearly scaled according to the minimum and maximum values of the initial 
  113. training set. For example, the XOR models used in the demonstration 
  114. spreadsheet had minimum and maximum values of 0.0 and 1.0 respectively. 
  115. When the user passes values outside the range of 0.0 and 1.0 NNCalc scales 
  116. them to fit within the neural operating range. In this example the XOR's 0.0 
  117. becomes 0.2 and the XOR's 1.0 becomes 0.8. This serves two functions: (1) the 
  118. neural inputs are balanced around the neuron's neural position (0.5) and (2) it 
  119. scales all input to the same range, thus, input with large numbers don't 
  120. overburden inputs with small numbers.
  121.  
  122. If you pass parameters that are outside of the normal operating range then these 
  123. values may overwhelm the other inputs to the neural network. 
  124. Error Codes:
  125.  
  126. There are five errors that can be generated by NNCalc. These errors are listed 
  127. below:
  128.  
  129. Error codes
  130.  
  131. ErrPE      Bad parameter form. First parameter is not a string 
  132.            ("ModelName") or any of the `neural inputs' parameters 
  133.            aren't real numbers or references to real numbers.
  134.  
  135. ErrNF      Model not found. The ENN file wasn't found in c:\nncalc 
  136.            sub-directory
  137.  
  138. ErrIM      Too many inputs in model. 
  139.  
  140. ErrBN      Bad file name. Only 1-8 alpha-numeric characters are allow 
  141.            in the file name. The extension ".ENN" is automatically 
  142.            appended by NNCalc.
  143.  
  144. ErrPI      Number of inputs passed doesn't match model. If the 
  145.            neural model calls for 3 inputs then you must pass 3 inputs.
  146.  
  147. ErrSW      Function not supported in shareware edition of NNCalc
  148.  
  149. Examples:
  150.  
  151. The following are examples of how to use NNCalc in an Excel spreadsheet.
  152.  
  153. =NNCalc ("XOR",1,0)
  154.                                   This example fires the XOR model 
  155.                                   with the a 1.0 loaded into input1 and a 
  156.                                   0.0 loaded into input2.
  157.  
  158. =NNCalc("XOR",A2,A3)
  159.                                   This example executes the XOR 
  160.                                   model loading input1 with the value 
  161.                                   found in cell A2 and input2 with the 
  162.                                   value in cell A3.
  163.  
  164. =NNCalc ("COATING", B3, B4, D6, E6, 50)
  165.                                   This example predicts coating from the 
  166.                                   values contained in cells B3, B4, D6, 
  167.                                   E6 and 50.0 is loaded into the last 
  168.                                   input.
  169.  
  170. =NNCALC ("COATING", B3:B7)
  171.                                   This example is the same as the previous 
  172.                                   except the inputs are passed in cells 
  173.                                   B3,B4,B5,B6 and B7. Where B3 is the first 
  174.                                   input and B7 is the last input.
  175.  
  176. =NNCALC("X",B1:C4)    
  177.                                   This example predicts X from the eight 
  178.                                   inputs passed. Inputs are B1,C1,B2,C2,
  179.                                   B3,C3,B4,C4 in column  / row order.
  180.  
  181.  
  182. EXAMPLE EXCEL SPREADSHEET 
  183.  
  184. The example included with NNCalc exercises the neural equivalent of six simple 
  185. Boolean logical functions (OR, AND, NAND, NOR, XOR and NOT) and 
  186. demonstrates how neural networks can be used within a spreadsheet. These 
  187. models where constructed using NNMODEL and then exported as feed forward 
  188. models. To run this example load the file named C:\NNCALC\NNCALC.XLS into 
  189. Excel. After loading the following spreadsheet should be displayed.
  190.  
  191.                     <Spreadsheet Graphic Not Shown>
  192.  
  193. The inputs (B4 and B5) are used in the NNCalc functions stored in cells E4 
  194. through E8 and E10 through E12. By changing the input cells (B4 and B5) you 
  195. can see the results of the neural models. Enter 1's or 0's into the input cells and 
  196. compare the results to the following truth table.
  197.  
  198.  
  199.               Boolean Logic Truth Table
  200.  
  201. -- Inputs --   --------- Model Outputs ------------
  202. IN1   IN2       OR  AND  NAND NOR  XOR
  203.  0     0        0    0    1    1    0
  204.  0     1        1    0    1    0    1
  205.  1     0        1    0    1    0    1
  206.  1     1        1    1    0    0    0
  207.  1     1        1    1    0    0    0
  208.  
  209. Each logical function was modeled as separate networks then exported as a 
  210. "Feed Forward Neural Model". Although NNCalc can load the "Full Neural Model" 
  211. version of the network (in ENN format) there is no reason to load the training and 
  212. test matrices carried with the full network.
  213. One additional Boolean function was modeled with a neural network. A NOT 
  214. function which simply logically inverts the input. 
  215. This example not only demonstrates loading and executing 6 neural model within 
  216. a spreadsheet, but also it shows how many neural models can be cascaded to 
  217. form a new function. The "Excel Built XOR" function is built from the logical 
  218. equation:
  219.  
  220.        XOR = (IN1 .and. .not. IN2) .or. (.not. IN1 .and. IN2)
  221.  
  222. But, instead of using standard Boolean functions to calculate the XOR function, 
  223. the neural modeled logical functions were used. The table that follows shows the 
  224. Excel syntax used to generate the "Calculated Values" column in the 
  225. spreadsheet. 
  226.  
  227. OR
  228.                                   =NNCalc("or",B4,B5)
  229.  
  230. AND
  231.                                   =NNCalc("and",B4,B5)
  232.  
  233. NAND
  234.                                   =NNCalc("nand",B4,B5)
  235.  
  236. NOR
  237.                                   =NNCalc("nor",B4,B5)
  238.  
  239. XOR
  240.                                   =NNCalc("xor",B4,B5)
  241.  
  242. NOT Input 1
  243.                                   =NNCalc("not",B4)
  244.  
  245. NOT Input 2
  246.                                   =NNCalc("not",B5)
  247.  
  248. Excel Build XOR
  249.                                   =NNCalc("or",NNCalc("and",B4,NNCalc("not",B5)),
  250.                                     NNCalc("and",B5,NNCalc("not",B4)) )
  251.  
  252. VERSION AND PRICING INFORMATION
  253.  
  254. NNCalc is available in two versions. The shareware version is distributed with 
  255. NNMODEL and has limited functionality. The profession edition has enhanced 
  256. memory caching and extended parameter passing. In either case, NNCalc can 
  257. be distributed (free of charge) with your spreadsheets.
  258.  
  259. Differences between the shareware and professional edition of NNCalc.
  260.  
  261. Features                                  Shareware Professional 
  262.                                           Edition   Edition
  263.  
  264. Maximum number of input parameters that      6      Unlimited
  265. can be passed to a model:                   
  266.  
  267. Number of neural models that can be          1         32
  268. loaded into cache: (see Note 1)
  269.  
  270.  
  271. Note 1: NNCalc loads the neural model into cache memory for execution. Models 
  272. will remain in cache until either Excel has exited or until the model is purged to 
  273. make room for another neural model. 
  274.  
  275. Version                               Prices
  276.  
  277. Shareware           Included with NNMODEL registration
  278. Professional        $79.  (shipping included)
  279. Source (Note 2)     $250. (shipping included)
  280.  
  281. Note 2: NNCalc was written in Microsoft Visual `C' version 1.52
  282.         NNCalc32 was written in Microsoft Visual `C' version 4.0
  283.